A processor can typically support multiple applications or processes in a time sliced manner. The processor may also include multiple resources that can be independently scheduled and allocated to support particular processes. The multiple processor resources may have the capability to concurrently support distinct applications that access the processor during distinct time slices.
The processor controls the allocation of its independent resources based on application needs and resource availability. Some internal processor resources may be shared among multiple applications, while other resources may occasionally support just one active application.
However, each individual application accessing the processor is likely unaware of any other applications that are accessing the processor. Typically, the processor appears to each individual application as being dedicated to the particular application.
There may be additional supervisory applications that are distinct from the applications accessing the processor. The supervisory applications may, for example, control system level applications, such as how the individual applications operate in a computer system. There may be conditions in which the supervisory applications desire to access the various resources within the processor to monitor or modify data, information, or even resource allocations within the processor. For example, a supervisory application may decide to prematurely terminate an application executing within the processor. In another example, the supervisory application may correct an error in data, resources, or states within the processor related to a particular application.
The ability of the supervisory application to access, monitor, or modify particular processor locations or resources is complicated by each application's inability to determine processor resources allocated to another application. Additionally, because the processor may determine the timing and access to the various resources, the supervisory application cannot be assured that the processor or any processor resource is in a particular state at a particular time while work for applications is in progress.
The ability of a supervisory application to access and monitor or modify information and resources within the processor is advantageous in situations where a processor supports numerous independent applications. The ability to access and modify processor data and resources can contribute to system stability.